package com.jhgsys.internal.sypq.entity;


import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jhgsys.internal.common.converter.TimeConverter;
import com.jhgsys.internal.common.entity.BaseEntity;

import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

import com.wuwenze.poi.annotation.Excel;
import com.wuwenze.poi.annotation.ExcelField;
import lombok.Data;


/**
 * 附体 Entity
 *
 * @author ganjun
 * @date 2024-11-20 17:18:55
 */
@Excel("附体信息表")
@Data
@TableName("sypq_model_attach")
public class ModelAttach extends BaseEntity implements Serializable {

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    @Size(max = 32, message = "{noMoreThan}")
    private String id;

    /**
     * 附体编号,FT+年+月+四位序号
     */
    @ExcelField(value = "附体编号")
    @TableField("attach_code")
    @NotBlank(message = "{required}")
    private String attachCode;

    /**
     * 原附体编号
     */
    @TableField("orig_attach_code")
    private String origAttachCode;

    /**
     * 项目编号
     */
    @ExcelField(value = "项目编号")
    @TableField("project_code")
    @NotBlank(message = "{required}")
    private String projectCode;

    /**
     * 项目名称
     */
    @TableField("project_name")
    @ExcelField(value = "项目名称")
    private String projectName;

    /**
     * 附体类型,数据字典MODEL_ATTACH_TYPE
     */
    @TableField("attach_type")
    private Integer attachType;

    /**
     * 附体类型名称
     */
    @ExcelField(value = "附体类型")
    @TableField("attach_type_name")
    @Size(max = 32, message = "{noMoreThan}")
    private String attachTypeName;

    /**
     * 名称
     */
    @ExcelField(value = "名称")
    @TableField("attach_name")
    @Size(max = 32, message = "{noMoreThan}")
    private String attachName;

    /**
     * 附体来源,1:新加工，2：已有,3:外带
     */
    @TableField("source")
    private Integer source;

    /**
     * 来源名称
     */
    @ExcelField(value = "来源")
    @TableField("source_name")
    @Size(max = 32, message = "{noMoreThan}")
    private String sourceName;

    /**
     * 状态,1:未开始，2:已完成
     */
    @TableField("status")
    private Integer status;

    /**
     * 状态名称
     */
    @ExcelField(value = "状态")
    @TableField("status_name")
    @Size(max = 32, message = "{noMoreThan}")
    private String statusName;

    /**
     * 要求完成时间
     */
    @ExcelField(value = "要求完成时间", writeConverter = TimeConverter.class)
    @TableField("demand_enddate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date demandEnddate;

    /**
     * 实际开始时间
     */
    @ExcelField(value = "实际开始时间", writeConverter = TimeConverter.class)
    @TableField("actually_startdate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date actuallyStartdate;

    /**
     * 实际完成时间
     */
    @ExcelField(value = "实际完成时间", writeConverter = TimeConverter.class)
    @TableField("actually_enddate")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date actuallyEnddate;

    /**
     * 备注
     */
    @TableField("memo")
    private String memo;

    /**
     * 图纸提交时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    @TableField("drawing_submit_time")
    private Date drawingSubmitTime;

}